package com.zhdl.modules.prefiresys.entity;

import com.project.common.bean.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 探测器装置列表，本地主机
 *
 * @author ACodeYuan
 * @Description:
 * @date 2023/7/21 16:13
 * @Version Y-1.0
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Entity
@Table(name = "factory_local_host")
public class FactoryLocalHost extends BaseEntity<FactoryLocalHost, String> {

    /**
     * ID
     */
    @Id
    @Column(length = 32)
    private String id;

    /**
     * 一体机名称
     */
    @Column
    private String hostName;

    /**
     * 一体机型号
     */
    @Column
    private String hostType;

    /**
     * 一体机编号，填写机器上印的编号
     */
    @Column
    private String hostNo;

    /**
     * 安装位置
     */
    @Column
    private String position;

    /**
     * 探测器ID
     */
    @Column(length = 32, nullable = false)
    private String detectorId1;

    /**
     * 探测器ID
     */
    @Column(length = 32)
    private String detectorId2;

    /**
     * 探测器ID
     */
    @Column(length = 32)
    private String detectorId3;

    /**
     * 继电器串口信息ID
     */
    @Column(nullable = false)
    private String relayComId;

    /**
     * UPS串口信息ID
     */
    @Column(nullable = false)
    private String upsComId;

    /**
     * 累计报警次数，从开始运行一直累计
     */
    @Column
    private Integer totalAlarmCount;

    /**
     * 最近一周累计报警次数
     */
    @Column
    private Integer weekAlarmCount;

    /**
     * 最近一个月一级报警数量
     */
    @Column
    private Integer monthAlarm1;

    /**
     * 最近一个月二级报警数量
     */
    @Column
    private Integer monthAlarm2;

    /**
     * 最近一个月三级报警数量
     */
    @Column
    private Integer monthAlarm3;

    /**
     * 本月报警总共数量，一二三级报警累加
     */
    @Column
    private Integer monthAlarmCount;

    /**
     * 本月设备故障数量
     */
    @Column
    private Integer monthDeviceFailCount;

    /**
     * 获取数据采集任务执行频率，单位秒
     */
    @Column
    private Integer collectInterval;

    /**
     * 自清洁开始时
     */
    @Column(nullable = false, columnDefinition = "INT default 1")
    private Integer selfCleanStartHour;

    /**
     * 自清洁开始分
     */
    @Column(nullable = false, columnDefinition = "INT default 0")
    private Integer selfCleanStartMinute;

    /**
     * 自清洁从开始时间后间隔多长时间，单位小时
     */
    @Column(nullable = false, columnDefinition = "INT default 24")
    private Integer selfCleanInterval;

    /**
     * 风险等级基准线。格式如 1,3 表示分为三档，小于等于1为低档，小于等于3为中档，大于3为高档
     */
    @Column
    private String riskGradeLine;

    /**
     * 蜂鸣器是否静音
     * <p>
     * 1 静音  0 不静音
     */
    @Column
    private Boolean isSound;
}
